Skip to main content

Sinon

  • spy: 原始的函式依然會被呼叫
  • stub: 原始函式不會被呼叫

spy

import { spy } from 'sinon'

class Student {
study() {
console.log('study')
}
}

const student = new Student()

// 建立 student.study() 的 spy
const studySpy = spy(student, 'study')

// 呼叫後 spy 都會記錄資訊
student.study()

// 用 spy 檢視資訊
console.log(studySpy.callCount) // 1

// 拆除 spy
studySpy.restore()

student.study()
console.log(studySpy.callCount) // 維持 1